
<!DOCTYPE html>

<html>
  
<!-- Mirrored from docs.sympy.org/latest/modules/physics/control/control_plots.html by HTTrack Website Copier/3.x [XR&CO'2014], Sat, 15 Jan 2022 03:28:41 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8" /><!-- /Added by HTTrack -->
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />

    <title>Control System Plots &#8212; SymPy 1.9 documentation</title>
    <link rel="stylesheet" type="text/css" href="../../../_static/pygments.css" />
    <link rel="stylesheet" type="text/css" href="../../../_static/default.css" />
    <link rel="stylesheet" type="text/css" href="../../../_static/graphviz.css" />
    <link rel="stylesheet" type="text/css" href="../../../_static/plot_directive.css" />
    <link rel="stylesheet" type="text/css" href="../../../../../live.sympy.org/static/live-core.css" />
    <link rel="stylesheet" type="text/css" href="../../../../../live.sympy.org/static/live-autocomplete.css" />
    <link rel="stylesheet" type="text/css" href="../../../../../live.sympy.org/static/live-sphinx.css" />
    
    <script data-url_root="../../../" id="documentation_options" src="../../../_static/documentation_options.js"></script>
    <script src="../../../_static/jquery.js"></script>
    <script src="../../../_static/underscore.js"></script>
    <script src="../../../_static/doctools.js"></script>
    <script src="../../../../../live.sympy.org/static/utilities.js"></script>
    <script src="../../../../../live.sympy.org/static/external/classy.js"></script>
    <script src="../../../../../live.sympy.org/static/live-core.js"></script>
    <script src="../../../../../live.sympy.org/static/live-autocomplete.js"></script>
    <script src="../../../../../live.sympy.org/static/live-sphinx.js"></script>
    <script async="async" src="../../../../../cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest8331.js?config=TeX-AMS_HTML-full"></script>
    <script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"inlineMath": [["\\(", "\\)"]], "displayMath": [["\\[", "\\]"]]}})</script>
    
    <link rel="shortcut icon" href="../../../_static/sympy-notailtext-favicon.ico"/>
    <link href="control_plots.html" rel="canonical" />
    
    <link rel="index" title="Index" href="../../../genindex.html" />
    <link rel="search" title="Search" href="../../../search.html" />
    <link rel="next" title="Continuum Mechanics" href="../continuum_mechanics/index.html" />
    <link rel="prev" title="Control API" href="lti.html" /> 
  </head><body>
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../../../genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="../../../py-modindex.html" title="Python Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="../continuum_mechanics/index.html" title="Continuum Mechanics"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="lti.html" title="Control API"
             accesskey="P">previous</a> |</li>
        <li class="nav-item nav-item-0"><a href="../../../index.html">SymPy 1.9 documentation</a> &#187;</li>
          <li class="nav-item nav-item-1"><a href="../../index.html" >SymPy Modules Reference</a> &#187;</li>
          <li class="nav-item nav-item-2"><a href="../index.html" >Physics</a> &#187;</li>
          <li class="nav-item nav-item-3"><a href="index.html" accesskey="U">Control Module</a> &#187;</li>
        <li class="nav-item nav-item-this"><a href="#">Control System Plots</a></li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body" role="main">
            
  <section id="control-system-plots">
<h1>Control System Plots<a class="headerlink" href="#control-system-plots" title="Permalink to this headline">¶</a></h1>
<p>This module contains plotting functions for some of the common plots
used in control system. Matplotlib will be required as an external dependency
if the user wants the plots. To get only the numerical data of the plots,
NumPy will be required as external dependency.</p>
<section id="pole-zero-plot">
<h2>Pole-Zero Plot<a class="headerlink" href="#pole-zero-plot" title="Permalink to this headline">¶</a></h2>
<dl class="py method">
<dt class="sig sig-object py" id="sympy.physics.control.control_plots.pole_zero_plot">
<span class="sig-prename descclassname"><span class="pre">control_plots.</span></span><span class="sig-name descname"><span class="pre">pole_zero_plot</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">pole_color</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'blue'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">pole_markersize</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">zero_color</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'orange'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">zero_markersize</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">7</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">grid</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_axes</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/sympy/sympy/blob/00d6469eafdd4aac346a0b598184c15f2560dbe5/sympy/physics/control/control_plots.py#L111-L199"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#sympy.physics.control.control_plots.pole_zero_plot" title="Permalink to this definition">¶</a></dt>
<dd><p>Returns the Pole-Zero plot (also known as PZ Plot or PZ Map) of a system.</p>
<p>A Pole-Zero plot is a graphical representation of a system’s poles and
zeros. It is plotted on a complex plane, with circular markers representing
the system’s zeros and ‘x’ shaped markers representing the system’s poles.</p>
<dl class="field-list">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>system</strong> : SISOLinearTimeInvariant type systems</p>
<blockquote>
<div><p>The system for which the pole-zero plot is to be computed.</p>
</div></blockquote>
<p><strong>pole_color</strong> : str, tuple, optional</p>
<blockquote>
<div><p>The color of the pole points on the plot. Default color
is blue. The color can be provided as a matplotlib color string,
or a 3-tuple of floats each in the 0-1 range.</p>
</div></blockquote>
<p><strong>pole_markersize</strong> : Number, optional</p>
<blockquote>
<div><p>The size of the markers used to mark the poles in the plot.
Default pole markersize is 10.</p>
</div></blockquote>
<p><strong>zero_color</strong> : str, tuple, optional</p>
<blockquote>
<div><p>The color of the zero points on the plot. Default color
is orange. The color can be provided as a matplotlib color string,
or a 3-tuple of floats each in the 0-1 range.</p>
</div></blockquote>
<p><strong>zero_markersize</strong> : Number, optional</p>
<blockquote>
<div><p>The size of the markers used to mark the zeros in the plot.
Default zero markersize is 7.</p>
</div></blockquote>
<p><strong>grid</strong> : boolean, optional</p>
<blockquote>
<div><p>If <code class="docutils literal notranslate"><span class="pre">True</span></code>, the plot will have a grid. Defaults to True.</p>
</div></blockquote>
<p><strong>show_axes</strong> : boolean, optional</p>
<blockquote>
<div><p>If <code class="docutils literal notranslate"><span class="pre">True</span></code>, the coordinate axes will be shown. Defaults to False.</p>
</div></blockquote>
<p><strong>show</strong> : boolean, optional</p>
<blockquote>
<div><p>If <code class="docutils literal notranslate"><span class="pre">True</span></code>, the plot will be displayed otherwise
the equivalent matplotlib <code class="docutils literal notranslate"><span class="pre">plot</span></code> object will be returned.
Defaults to True.</p>
</div></blockquote>
</dd>
</dl>
<p class="rubric">Examples</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.abc</span> <span class="kn">import</span> <span class="n">s</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.physics.control.lti</span> <span class="kn">import</span> <span class="n">TransferFunction</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.physics.control.control_plots</span> <span class="kn">import</span> <span class="n">pole_zero_plot</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">tf1</span> <span class="o">=</span> <span class="n">TransferFunction</span><span class="p">(</span><span class="n">s</span><span class="o">**</span><span class="mi">2</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">s</span><span class="o">**</span><span class="mi">4</span> <span class="o">+</span> <span class="mi">4</span><span class="o">*</span><span class="n">s</span><span class="o">**</span><span class="mi">3</span> <span class="o">+</span> <span class="mi">6</span><span class="o">*</span><span class="n">s</span><span class="o">**</span><span class="mi">2</span> <span class="o">+</span> <span class="mi">5</span><span class="o">*</span><span class="n">s</span> <span class="o">+</span> <span class="mi">2</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">pole_zero_plot</span><span class="p">(</span><span class="n">tf1</span><span class="p">)</span>   
</pre></div>
</div>
<p>(<a class="reference external" href="control_plots-1.png">png</a>, <a class="reference external" href="control_plots-1.hires.png">hires.png</a>, <a class="reference external" href="control_plots-1.pdf">pdf</a>)</p>
<figure class="align-default">
<img alt="../../../_images/control_plots-1.png" class="plot-directive" src="../../../_images/control_plots-1.png" />
</figure>
<div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#sympy.physics.control.control_plots.pole_zero_numerical_data" title="sympy.physics.control.control_plots.pole_zero_numerical_data"><code class="xref py py-obj docutils literal notranslate"><span class="pre">pole_zero_numerical_data</span></code></a></p>
</div>
<p class="rubric">References</p>
<dl class="citation">
<dt class="label" id="r603"><span class="brackets"><a class="fn-backref" href="#id1">R603</a></span></dt>
<dd><p><a class="reference external" href="https://en.wikipedia.org/wiki/Pole–zero_plot">https://en.wikipedia.org/wiki/Pole%E2%80%93zero_plot</a></p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="sympy.physics.control.control_plots.pole_zero_numerical_data">
<span class="sig-prename descclassname"><span class="pre">control_plots.</span></span><span class="sig-name descname"><span class="pre">pole_zero_numerical_data</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/sympy/sympy/blob/00d6469eafdd4aac346a0b598184c15f2560dbe5/sympy/physics/control/control_plots.py#L46-L108"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#sympy.physics.control.control_plots.pole_zero_numerical_data" title="Permalink to this definition">¶</a></dt>
<dd><p>Returns the numerical data of poles and zeros of the system.
It is internally used by <code class="docutils literal notranslate"><span class="pre">pole_zero_plot</span></code> to get the data
for plotting poles and zeros. Users can use this data to further
analyse the dynamics of the system or plot using a different
backend/plotting-module.</p>
<dl class="field-list">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>system</strong> : SISOLinearTimeInvariant</p>
<blockquote>
<div><p>The system for which the pole-zero data is to be computed.</p>
</div></blockquote>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><strong>tuple</strong> : (zeros, poles)</p>
<blockquote>
<div><p>zeros = Zeros of the system. NumPy array of complex numbers.
poles = Poles of the system. NumPy array of complex numbers.</p>
</div></blockquote>
</dd>
<dt class="field-odd">Raises</dt>
<dd class="field-odd"><p><strong>NotImplementedError</strong></p>
<blockquote>
<div><p>When a SISO LTI system is not passed.</p>
<p>When time delay terms are present in the system.</p>
</div></blockquote>
<p><strong>ValueError</strong></p>
<blockquote>
<div><p>When more than one free symbol is present in the system.
The only variable in the transfer function should be
the variable of the Laplace transform.</p>
</div></blockquote>
</dd>
</dl>
<p class="rubric">Examples</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.abc</span> <span class="kn">import</span> <span class="n">s</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.physics.control.lti</span> <span class="kn">import</span> <span class="n">TransferFunction</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.physics.control.control_plots</span> <span class="kn">import</span> <span class="n">pole_zero_numerical_data</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">tf1</span> <span class="o">=</span> <span class="n">TransferFunction</span><span class="p">(</span><span class="n">s</span><span class="o">**</span><span class="mi">2</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">s</span><span class="o">**</span><span class="mi">4</span> <span class="o">+</span> <span class="mi">4</span><span class="o">*</span><span class="n">s</span><span class="o">**</span><span class="mi">3</span> <span class="o">+</span> <span class="mi">6</span><span class="o">*</span><span class="n">s</span><span class="o">**</span><span class="mi">2</span> <span class="o">+</span> <span class="mi">5</span><span class="o">*</span><span class="n">s</span> <span class="o">+</span> <span class="mi">2</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">pole_zero_numerical_data</span><span class="p">(</span><span class="n">tf1</span><span class="p">)</span>   
<span class="go">([-0.+1.j  0.-1.j], [-2. +0.j        -0.5+0.8660254j -0.5-0.8660254j -1. +0.j       ])</span>
</pre></div>
</div>
<div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#sympy.physics.control.control_plots.pole_zero_plot" title="sympy.physics.control.control_plots.pole_zero_plot"><code class="xref py py-obj docutils literal notranslate"><span class="pre">pole_zero_plot</span></code></a></p>
</div>
</dd></dl>

</section>
<section id="bode-plot">
<h2>Bode Plot<a class="headerlink" href="#bode-plot" title="Permalink to this headline">¶</a></h2>
<dl class="py method">
<dt class="sig sig-object py" id="sympy.physics.control.control_plots.bode_plot">
<span class="sig-prename descclassname"><span class="pre">control_plots.</span></span><span class="sig-name descname"><span class="pre">bode_plot</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">initial_exp</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">-</span> <span class="pre">5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">final_exp</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">grid</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_axes</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/sympy/sympy/blob/00d6469eafdd4aac346a0b598184c15f2560dbe5/sympy/physics/control/control_plots.py#L856-L914"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#sympy.physics.control.control_plots.bode_plot" title="Permalink to this definition">¶</a></dt>
<dd><p>Returns the Bode phase and magnitude plots of a continuous-time system.</p>
<dl class="field-list">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>system</strong> : SISOLinearTimeInvariant type</p>
<blockquote>
<div><p>The LTI SISO system for which the Bode Plot is to be computed.</p>
</div></blockquote>
<p><strong>initial_exp</strong> : Number, optional</p>
<blockquote>
<div><p>The initial exponent of 10 of the semilog plot. Defaults to -5.</p>
</div></blockquote>
<p><strong>final_exp</strong> : Number, optional</p>
<blockquote>
<div><p>The final exponent of 10 of the semilog plot. Defaults to 5.</p>
</div></blockquote>
<p><strong>show</strong> : boolean, optional</p>
<blockquote>
<div><p>If <code class="docutils literal notranslate"><span class="pre">True</span></code>, the plot will be displayed otherwise
the equivalent matplotlib <code class="docutils literal notranslate"><span class="pre">plot</span></code> object will be returned.
Defaults to True.</p>
</div></blockquote>
<p><strong>prec</strong> : int, optional</p>
<blockquote>
<div><p>The decimal point precision for the point coordinate values.
Defaults to 8.</p>
</div></blockquote>
<p><strong>grid</strong> : boolean, optional</p>
<blockquote>
<div><p>If <code class="docutils literal notranslate"><span class="pre">True</span></code>, the plot will have a grid. Defaults to True.</p>
</div></blockquote>
<p><strong>show_axes</strong> : boolean, optional</p>
<blockquote>
<div><p>If <code class="docutils literal notranslate"><span class="pre">True</span></code>, the coordinate axes will be shown. Defaults to False.</p>
</div></blockquote>
</dd>
</dl>
<p class="rubric">Examples</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.abc</span> <span class="kn">import</span> <span class="n">s</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.physics.control.lti</span> <span class="kn">import</span> <span class="n">TransferFunction</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.physics.control.control_plots</span> <span class="kn">import</span> <span class="n">bode_plot</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">tf1</span> <span class="o">=</span> <span class="n">TransferFunction</span><span class="p">(</span><span class="mi">1</span><span class="o">*</span><span class="n">s</span><span class="o">**</span><span class="mi">2</span> <span class="o">+</span> <span class="mf">0.1</span><span class="o">*</span><span class="n">s</span> <span class="o">+</span> <span class="mf">7.5</span><span class="p">,</span> <span class="mi">1</span><span class="o">*</span><span class="n">s</span><span class="o">**</span><span class="mi">4</span> <span class="o">+</span> <span class="mf">0.12</span><span class="o">*</span><span class="n">s</span><span class="o">**</span><span class="mi">3</span> <span class="o">+</span> <span class="mi">9</span><span class="o">*</span><span class="n">s</span><span class="o">**</span><span class="mi">2</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">bode_plot</span><span class="p">(</span><span class="n">tf1</span><span class="p">,</span> <span class="n">initial_exp</span><span class="o">=</span><span class="mf">0.2</span><span class="p">,</span> <span class="n">final_exp</span><span class="o">=</span><span class="mf">0.7</span><span class="p">)</span>   
</pre></div>
</div>
<p>(<a class="reference external" href="control_plots-2.png">png</a>, <a class="reference external" href="control_plots-2.hires.png">hires.png</a>, <a class="reference external" href="control_plots-2.pdf">pdf</a>)</p>
<figure class="align-default">
<img alt="../../../_images/control_plots-2.png" class="plot-directive" src="../../../_images/control_plots-2.png" />
</figure>
<div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#sympy.physics.control.control_plots.bode_magnitude_plot" title="sympy.physics.control.control_plots.bode_magnitude_plot"><code class="xref py py-obj docutils literal notranslate"><span class="pre">bode_magnitude_plot</span></code></a>, <a class="reference internal" href="#sympy.physics.control.control_plots.bode_phase_plot" title="sympy.physics.control.control_plots.bode_phase_plot"><code class="xref py py-obj docutils literal notranslate"><span class="pre">bode_phase_plot</span></code></a></p>
</div>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="sympy.physics.control.control_plots.bode_magnitude_plot">
<span class="sig-prename descclassname"><span class="pre">control_plots.</span></span><span class="sig-name descname"><span class="pre">bode_magnitude_plot</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">initial_exp</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">-</span> <span class="pre">5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">final_exp</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">color</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'b'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_axes</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">grid</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/sympy/sympy/blob/00d6469eafdd4aac346a0b598184c15f2560dbe5/sympy/physics/control/control_plots.py#L734-L759"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#sympy.physics.control.control_plots.bode_magnitude_plot" title="Permalink to this definition">¶</a></dt>
<dd><p>Returns the Bode magnitude plot of a continuous-time system.</p>
<p>See <code class="docutils literal notranslate"><span class="pre">bode_plot</span></code> for all the parameters.</p>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="sympy.physics.control.control_plots.bode_phase_plot">
<span class="sig-prename descclassname"><span class="pre">control_plots.</span></span><span class="sig-name descname"><span class="pre">bode_phase_plot</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">initial_exp</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">-</span> <span class="pre">5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">final_exp</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">color</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'b'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_axes</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">grid</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/sympy/sympy/blob/00d6469eafdd4aac346a0b598184c15f2560dbe5/sympy/physics/control/control_plots.py#L828-L853"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#sympy.physics.control.control_plots.bode_phase_plot" title="Permalink to this definition">¶</a></dt>
<dd><p>Returns the Bode phase plot of a continuous-time system.</p>
<p>See <code class="docutils literal notranslate"><span class="pre">bode_plot</span></code> for all the parameters.</p>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="sympy.physics.control.control_plots.bode_magnitude_numerical_data">
<span class="sig-prename descclassname"><span class="pre">control_plots.</span></span><span class="sig-name descname"><span class="pre">bode_magnitude_numerical_data</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">initial_exp</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">-</span> <span class="pre">5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">final_exp</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">5</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/sympy/sympy/blob/00d6469eafdd4aac346a0b598184c15f2560dbe5/sympy/physics/control/control_plots.py#L668-L731"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#sympy.physics.control.control_plots.bode_magnitude_numerical_data" title="Permalink to this definition">¶</a></dt>
<dd><p>Returns the numerical data of the Bode magnitude plot of the system.
It is internally used by <code class="docutils literal notranslate"><span class="pre">bode_magnitude_plot</span></code> to get the data
for plotting Bode magnitude plot. Users can use this data to further
analyse the dynamics of the system or plot using a different
backend/plotting-module.</p>
<dl class="field-list">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>system</strong> : SISOLinearTimeInvariant</p>
<blockquote>
<div><p>The system for which the data is to be computed.</p>
</div></blockquote>
<p><strong>initial_exp</strong> : Number, optional</p>
<blockquote>
<div><p>The initial exponent of 10 of the semilog plot. Defaults to -5.</p>
</div></blockquote>
<p><strong>final_exp</strong> : Number, optional</p>
<blockquote>
<div><p>The final exponent of 10 of the semilog plot. Defaults to 5.</p>
</div></blockquote>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><strong>tuple</strong> : (x, y)</p>
<blockquote>
<div><p>x = x-axis values of the Bode magnitude plot.
y = y-axis values of the Bode magnitude plot.</p>
</div></blockquote>
</dd>
<dt class="field-odd">Raises</dt>
<dd class="field-odd"><p><strong>NotImplementedError</strong></p>
<blockquote>
<div><p>When a SISO LTI system is not passed.</p>
<p>When time delay terms are present in the system.</p>
</div></blockquote>
<p><strong>ValueError</strong></p>
<blockquote>
<div><p>When more than one free symbol is present in the system.
The only variable in the transfer function should be
the variable of the Laplace transform.</p>
</div></blockquote>
</dd>
</dl>
<p class="rubric">Examples</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.abc</span> <span class="kn">import</span> <span class="n">s</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.physics.control.lti</span> <span class="kn">import</span> <span class="n">TransferFunction</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.physics.control.control_plots</span> <span class="kn">import</span> <span class="n">bode_magnitude_numerical_data</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">tf1</span> <span class="o">=</span> <span class="n">TransferFunction</span><span class="p">(</span><span class="n">s</span><span class="o">**</span><span class="mi">2</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">s</span><span class="o">**</span><span class="mi">4</span> <span class="o">+</span> <span class="mi">4</span><span class="o">*</span><span class="n">s</span><span class="o">**</span><span class="mi">3</span> <span class="o">+</span> <span class="mi">6</span><span class="o">*</span><span class="n">s</span><span class="o">**</span><span class="mi">2</span> <span class="o">+</span> <span class="mi">5</span><span class="o">*</span><span class="n">s</span> <span class="o">+</span> <span class="mi">2</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">bode_magnitude_numerical_data</span><span class="p">(</span><span class="n">tf1</span><span class="p">)</span>   
<span class="go">([1e-05, 1.5148378120533502e-05,..., 68437.36188804005, 100000.0],</span>
<span class="go">[-6.020599914256786, -6.0205999155219505,..., -193.4117304087953, -200.00000000260573])</span>
</pre></div>
</div>
<div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#sympy.physics.control.control_plots.bode_magnitude_plot" title="sympy.physics.control.control_plots.bode_magnitude_plot"><code class="xref py py-obj docutils literal notranslate"><span class="pre">bode_magnitude_plot</span></code></a>, <a class="reference internal" href="#sympy.physics.control.control_plots.bode_phase_numerical_data" title="sympy.physics.control.control_plots.bode_phase_numerical_data"><code class="xref py py-obj docutils literal notranslate"><span class="pre">bode_phase_numerical_data</span></code></a></p>
</div>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="sympy.physics.control.control_plots.bode_phase_numerical_data">
<span class="sig-prename descclassname"><span class="pre">control_plots.</span></span><span class="sig-name descname"><span class="pre">bode_phase_numerical_data</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">initial_exp</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">-</span> <span class="pre">5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">final_exp</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">5</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/sympy/sympy/blob/00d6469eafdd4aac346a0b598184c15f2560dbe5/sympy/physics/control/control_plots.py#L762-L825"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#sympy.physics.control.control_plots.bode_phase_numerical_data" title="Permalink to this definition">¶</a></dt>
<dd><p>Returns the numerical data of the Bode phase plot of the system.
It is internally used by <code class="docutils literal notranslate"><span class="pre">bode_phase_plot</span></code> to get the data
for plotting Bode phase plot. Users can use this data to further
analyse the dynamics of the system or plot using a different
backend/plotting-module.</p>
<dl class="field-list">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>system</strong> : SISOLinearTimeInvariant</p>
<blockquote>
<div><p>The system for which the Bode phase plot data is to be computed.</p>
</div></blockquote>
<p><strong>initial_exp</strong> : Number, optional</p>
<blockquote>
<div><p>The initial exponent of 10 of the semilog plot. Defaults to -5.</p>
</div></blockquote>
<p><strong>final_exp</strong> : Number, optional</p>
<blockquote>
<div><p>The final exponent of 10 of the semilog plot. Defaults to 5.</p>
</div></blockquote>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><strong>tuple</strong> : (x, y)</p>
<blockquote>
<div><p>x = x-axis values of the Bode phase plot.
y = y-axis values of the Bode phase plot.</p>
</div></blockquote>
</dd>
<dt class="field-odd">Raises</dt>
<dd class="field-odd"><p><strong>NotImplementedError</strong></p>
<blockquote>
<div><p>When a SISO LTI system is not passed.</p>
<p>When time delay terms are present in the system.</p>
</div></blockquote>
<p><strong>ValueError</strong></p>
<blockquote>
<div><p>When more than one free symbol is present in the system.
The only variable in the transfer function should be
the variable of the Laplace transform.</p>
</div></blockquote>
</dd>
</dl>
<p class="rubric">Examples</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.abc</span> <span class="kn">import</span> <span class="n">s</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.physics.control.lti</span> <span class="kn">import</span> <span class="n">TransferFunction</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.physics.control.control_plots</span> <span class="kn">import</span> <span class="n">bode_phase_numerical_data</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">tf1</span> <span class="o">=</span> <span class="n">TransferFunction</span><span class="p">(</span><span class="n">s</span><span class="o">**</span><span class="mi">2</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">s</span><span class="o">**</span><span class="mi">4</span> <span class="o">+</span> <span class="mi">4</span><span class="o">*</span><span class="n">s</span><span class="o">**</span><span class="mi">3</span> <span class="o">+</span> <span class="mi">6</span><span class="o">*</span><span class="n">s</span><span class="o">**</span><span class="mi">2</span> <span class="o">+</span> <span class="mi">5</span><span class="o">*</span><span class="n">s</span> <span class="o">+</span> <span class="mi">2</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">bode_phase_numerical_data</span><span class="p">(</span><span class="n">tf1</span><span class="p">)</span>   
<span class="go">([1e-05, 1.4472354033813751e-05, 2.035581932165858e-05,..., 47577.3248186011, 67884.09326036123, 100000.0],</span>
<span class="go">[-2.5000000000291665e-05, -3.6180885085e-05, -5.08895483066e-05,...,-3.1415085799262523, -3.14155265358979])</span>
</pre></div>
</div>
<div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#sympy.physics.control.control_plots.bode_magnitude_plot" title="sympy.physics.control.control_plots.bode_magnitude_plot"><code class="xref py py-obj docutils literal notranslate"><span class="pre">bode_magnitude_plot</span></code></a>, <a class="reference internal" href="#sympy.physics.control.control_plots.bode_phase_numerical_data" title="sympy.physics.control.control_plots.bode_phase_numerical_data"><code class="xref py py-obj docutils literal notranslate"><span class="pre">bode_phase_numerical_data</span></code></a></p>
</div>
</dd></dl>

</section>
<section id="impulse-response-plot">
<h2>Impulse-Response Plot<a class="headerlink" href="#impulse-response-plot" title="Permalink to this headline">¶</a></h2>
<dl class="py method">
<dt class="sig sig-object py" id="sympy.physics.control.control_plots.impulse_response_plot">
<span class="sig-prename descclassname"><span class="pre">control_plots.</span></span><span class="sig-name descname"><span class="pre">impulse_response_plot</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">color</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'b'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">prec</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">8</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lower_limit</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">upper_limit</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_axes</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">grid</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/sympy/sympy/blob/00d6469eafdd4aac346a0b598184c15f2560dbe5/sympy/physics/control/control_plots.py#L431-L501"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#sympy.physics.control.control_plots.impulse_response_plot" title="Permalink to this definition">¶</a></dt>
<dd><p>Returns the unit impulse response (Input is the Dirac-Delta Function) of a
continuous-time system.</p>
<dl class="field-list">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>system</strong> : SISOLinearTimeInvariant type</p>
<blockquote>
<div><p>The LTI SISO system for which the Impulse Response is to be computed.</p>
</div></blockquote>
<p><strong>color</strong> : str, tuple, optional</p>
<blockquote>
<div><p>The color of the line. Default is Blue.</p>
</div></blockquote>
<p><strong>show</strong> : boolean, optional</p>
<blockquote>
<div><p>If <code class="docutils literal notranslate"><span class="pre">True</span></code>, the plot will be displayed otherwise
the equivalent matplotlib <code class="docutils literal notranslate"><span class="pre">plot</span></code> object will be returned.
Defaults to True.</p>
</div></blockquote>
<p><strong>lower_limit</strong> : Number, optional</p>
<blockquote>
<div><p>The lower limit of the plot range. Defaults to 0.</p>
</div></blockquote>
<p><strong>upper_limit</strong> : Number, optional</p>
<blockquote>
<div><p>The upper limit of the plot range. Defaults to 10.</p>
</div></blockquote>
<p><strong>prec</strong> : int, optional</p>
<blockquote>
<div><p>The decimal point precision for the point coordinate values.
Defaults to 8.</p>
</div></blockquote>
<p><strong>show_axes</strong> : boolean, optional</p>
<blockquote>
<div><p>If <code class="docutils literal notranslate"><span class="pre">True</span></code>, the coordinate axes will be shown. Defaults to False.</p>
</div></blockquote>
<p><strong>grid</strong> : boolean, optional</p>
<blockquote>
<div><p>If <code class="docutils literal notranslate"><span class="pre">True</span></code>, the plot will have a grid. Defaults to True.</p>
</div></blockquote>
</dd>
</dl>
<p class="rubric">Examples</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.abc</span> <span class="kn">import</span> <span class="n">s</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.physics.control.lti</span> <span class="kn">import</span> <span class="n">TransferFunction</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.physics.control.control_plots</span> <span class="kn">import</span> <span class="n">impulse_response_plot</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">tf1</span> <span class="o">=</span> <span class="n">TransferFunction</span><span class="p">(</span><span class="mi">8</span><span class="o">*</span><span class="n">s</span><span class="o">**</span><span class="mi">2</span> <span class="o">+</span> <span class="mi">18</span><span class="o">*</span><span class="n">s</span> <span class="o">+</span> <span class="mi">32</span><span class="p">,</span> <span class="n">s</span><span class="o">**</span><span class="mi">3</span> <span class="o">+</span> <span class="mi">6</span><span class="o">*</span><span class="n">s</span><span class="o">**</span><span class="mi">2</span> <span class="o">+</span> <span class="mi">14</span><span class="o">*</span><span class="n">s</span> <span class="o">+</span> <span class="mi">24</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">impulse_response_plot</span><span class="p">(</span><span class="n">tf1</span><span class="p">)</span>   
</pre></div>
</div>
<p>(<a class="reference external" href="control_plots-3.png">png</a>, <a class="reference external" href="control_plots-3.hires.png">hires.png</a>, <a class="reference external" href="control_plots-3.pdf">pdf</a>)</p>
<figure class="align-default">
<img alt="../../../_images/control_plots-3.png" class="plot-directive" src="../../../_images/control_plots-3.png" />
</figure>
<div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#sympy.physics.control.control_plots.step_response_plot" title="sympy.physics.control.control_plots.step_response_plot"><code class="xref py py-obj docutils literal notranslate"><span class="pre">step_response_plot</span></code></a>, <a class="reference internal" href="#sympy.physics.control.control_plots.ramp_response_plot" title="sympy.physics.control.control_plots.ramp_response_plot"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ramp_response_plot</span></code></a></p>
</div>
<p class="rubric">References</p>
<dl class="citation">
<dt class="label" id="r604"><span class="brackets"><a class="fn-backref" href="#id2">R604</a></span></dt>
<dd><p><a class="reference external" href="https://www.mathworks.com/help/control/ref/lti.impulse.html">https://www.mathworks.com/help/control/ref/lti.impulse.html</a></p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="sympy.physics.control.control_plots.impulse_response_numerical_data">
<span class="sig-prename descclassname"><span class="pre">control_plots.</span></span><span class="sig-name descname"><span class="pre">impulse_response_numerical_data</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">prec</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">8</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lower_limit</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">upper_limit</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/sympy/sympy/blob/00d6469eafdd4aac346a0b598184c15f2560dbe5/sympy/physics/control/control_plots.py#L353-L428"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#sympy.physics.control.control_plots.impulse_response_numerical_data" title="Permalink to this definition">¶</a></dt>
<dd><p>Returns the numerical values of the points in the impulse response plot
of a SISO continuous-time system. By default, adaptive sampling
is used. If the user wants to instead get an uniformly
sampled response, then <code class="docutils literal notranslate"><span class="pre">adaptive</span></code> kwarg should be passed <code class="docutils literal notranslate"><span class="pre">False</span></code>
and <code class="docutils literal notranslate"><span class="pre">nb_of_points</span></code> must be passed as additional kwargs.
Refer to the parameters of class <a class="reference internal" href="../../plotting.html#sympy.plotting.plot.LineOver1DRangeSeries" title="sympy.plotting.plot.LineOver1DRangeSeries"><code class="xref py py-class docutils literal notranslate"><span class="pre">sympy.plotting.plot.LineOver1DRangeSeries</span></code></a>
for more details.</p>
<dl class="field-list">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>system</strong> : SISOLinearTimeInvariant</p>
<blockquote>
<div><p>The system for which the impulse response data is to be computed.</p>
</div></blockquote>
<p><strong>prec</strong> : int, optional</p>
<blockquote>
<div><p>The decimal point precision for the point coordinate values.
Defaults to 8.</p>
</div></blockquote>
<p><strong>lower_limit</strong> : Number, optional</p>
<blockquote>
<div><p>The lower limit of the plot range. Defaults to 0.</p>
</div></blockquote>
<p><strong>upper_limit</strong> : Number, optional</p>
<blockquote>
<div><p>The upper limit of the plot range. Defaults to 10.</p>
</div></blockquote>
<p><strong>kwargs :</strong></p>
<blockquote>
<div><p>Additional keyword arguments are passed to the underlying
<a class="reference internal" href="../../plotting.html#sympy.plotting.plot.LineOver1DRangeSeries" title="sympy.plotting.plot.LineOver1DRangeSeries"><code class="xref py py-class docutils literal notranslate"><span class="pre">sympy.plotting.plot.LineOver1DRangeSeries</span></code></a> class.</p>
</div></blockquote>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><strong>tuple</strong> : (x, y)</p>
<blockquote>
<div><p>x = Time-axis values of the points in the impulse response. NumPy array.
y = Amplitude-axis values of the points in the impulse response. NumPy array.</p>
</div></blockquote>
</dd>
<dt class="field-odd">Raises</dt>
<dd class="field-odd"><p><strong>NotImplementedError</strong></p>
<blockquote>
<div><p>When a SISO LTI system is not passed.</p>
<p>When time delay terms are present in the system.</p>
</div></blockquote>
<p><strong>ValueError</strong></p>
<blockquote>
<div><p>When more than one free symbol is present in the system.
The only variable in the transfer function should be
the variable of the Laplace transform.</p>
<p>When <code class="docutils literal notranslate"><span class="pre">lower_limit</span></code> parameter is less than 0.</p>
</div></blockquote>
</dd>
</dl>
<p class="rubric">Examples</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.abc</span> <span class="kn">import</span> <span class="n">s</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.physics.control.lti</span> <span class="kn">import</span> <span class="n">TransferFunction</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.physics.control.control_plots</span> <span class="kn">import</span> <span class="n">impulse_response_numerical_data</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">tf1</span> <span class="o">=</span> <span class="n">TransferFunction</span><span class="p">(</span><span class="n">s</span><span class="p">,</span> <span class="n">s</span><span class="o">**</span><span class="mi">2</span> <span class="o">+</span> <span class="mi">5</span><span class="o">*</span><span class="n">s</span> <span class="o">+</span> <span class="mi">8</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">impulse_response_numerical_data</span><span class="p">(</span><span class="n">tf1</span><span class="p">)</span>   
<span class="go">([0.0, 0.06616480200395854,... , 9.854500743565858, 10.0],</span>
<span class="go">[0.9999999799999999, 0.7042848373025861,...,7.170748906965121e-13, -5.1901263495547205e-12])</span>
</pre></div>
</div>
<div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#sympy.physics.control.control_plots.impulse_response_plot" title="sympy.physics.control.control_plots.impulse_response_plot"><code class="xref py py-obj docutils literal notranslate"><span class="pre">impulse_response_plot</span></code></a></p>
</div>
</dd></dl>

</section>
<section id="step-response-plot">
<h2>Step-Response Plot<a class="headerlink" href="#step-response-plot" title="Permalink to this headline">¶</a></h2>
<dl class="py method">
<dt class="sig sig-object py" id="sympy.physics.control.control_plots.step_response_plot">
<span class="sig-prename descclassname"><span class="pre">control_plots.</span></span><span class="sig-name descname"><span class="pre">step_response_plot</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">color</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'b'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">prec</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">8</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lower_limit</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">upper_limit</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_axes</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">grid</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/sympy/sympy/blob/00d6469eafdd4aac346a0b598184c15f2560dbe5/sympy/physics/control/control_plots.py#L280-L350"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#sympy.physics.control.control_plots.step_response_plot" title="Permalink to this definition">¶</a></dt>
<dd><p>Returns the unit step response of a continuous-time system. It is
the response of the system when the input signal is a step function.</p>
<dl class="field-list">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>system</strong> : SISOLinearTimeInvariant type</p>
<blockquote>
<div><p>The LTI SISO system for which the Step Response is to be computed.</p>
</div></blockquote>
<p><strong>color</strong> : str, tuple, optional</p>
<blockquote>
<div><p>The color of the line. Default is Blue.</p>
</div></blockquote>
<p><strong>show</strong> : boolean, optional</p>
<blockquote>
<div><p>If <code class="docutils literal notranslate"><span class="pre">True</span></code>, the plot will be displayed otherwise
the equivalent matplotlib <code class="docutils literal notranslate"><span class="pre">plot</span></code> object will be returned.
Defaults to True.</p>
</div></blockquote>
<p><strong>lower_limit</strong> : Number, optional</p>
<blockquote>
<div><p>The lower limit of the plot range. Defaults to 0.</p>
</div></blockquote>
<p><strong>upper_limit</strong> : Number, optional</p>
<blockquote>
<div><p>The upper limit of the plot range. Defaults to 10.</p>
</div></blockquote>
<p><strong>prec</strong> : int, optional</p>
<blockquote>
<div><p>The decimal point precision for the point coordinate values.
Defaults to 8.</p>
</div></blockquote>
<p><strong>show_axes</strong> : boolean, optional</p>
<blockquote>
<div><p>If <code class="docutils literal notranslate"><span class="pre">True</span></code>, the coordinate axes will be shown. Defaults to False.</p>
</div></blockquote>
<p><strong>grid</strong> : boolean, optional</p>
<blockquote>
<div><p>If <code class="docutils literal notranslate"><span class="pre">True</span></code>, the plot will have a grid. Defaults to True.</p>
</div></blockquote>
</dd>
</dl>
<p class="rubric">Examples</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.abc</span> <span class="kn">import</span> <span class="n">s</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.physics.control.lti</span> <span class="kn">import</span> <span class="n">TransferFunction</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.physics.control.control_plots</span> <span class="kn">import</span> <span class="n">step_response_plot</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">tf1</span> <span class="o">=</span> <span class="n">TransferFunction</span><span class="p">(</span><span class="mi">8</span><span class="o">*</span><span class="n">s</span><span class="o">**</span><span class="mi">2</span> <span class="o">+</span> <span class="mi">18</span><span class="o">*</span><span class="n">s</span> <span class="o">+</span> <span class="mi">32</span><span class="p">,</span> <span class="n">s</span><span class="o">**</span><span class="mi">3</span> <span class="o">+</span> <span class="mi">6</span><span class="o">*</span><span class="n">s</span><span class="o">**</span><span class="mi">2</span> <span class="o">+</span> <span class="mi">14</span><span class="o">*</span><span class="n">s</span> <span class="o">+</span> <span class="mi">24</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">step_response_plot</span><span class="p">(</span><span class="n">tf1</span><span class="p">)</span>   
</pre></div>
</div>
<p>(<a class="reference external" href="control_plots-4.png">png</a>, <a class="reference external" href="control_plots-4.hires.png">hires.png</a>, <a class="reference external" href="control_plots-4.pdf">pdf</a>)</p>
<figure class="align-default">
<img alt="../../../_images/control_plots-4.png" class="plot-directive" src="../../../_images/control_plots-4.png" />
</figure>
<div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#sympy.physics.control.control_plots.impulse_response_plot" title="sympy.physics.control.control_plots.impulse_response_plot"><code class="xref py py-obj docutils literal notranslate"><span class="pre">impulse_response_plot</span></code></a>, <a class="reference internal" href="#sympy.physics.control.control_plots.ramp_response_plot" title="sympy.physics.control.control_plots.ramp_response_plot"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ramp_response_plot</span></code></a></p>
</div>
<p class="rubric">References</p>
<dl class="citation">
<dt class="label" id="r605"><span class="brackets"><a class="fn-backref" href="#id3">R605</a></span></dt>
<dd><p><a class="reference external" href="https://www.mathworks.com/help/control/ref/lti.step.html">https://www.mathworks.com/help/control/ref/lti.step.html</a></p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="sympy.physics.control.control_plots.step_response_numerical_data">
<span class="sig-prename descclassname"><span class="pre">control_plots.</span></span><span class="sig-name descname"><span class="pre">step_response_numerical_data</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">prec</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">8</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lower_limit</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">upper_limit</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/sympy/sympy/blob/00d6469eafdd4aac346a0b598184c15f2560dbe5/sympy/physics/control/control_plots.py#L202-L277"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#sympy.physics.control.control_plots.step_response_numerical_data" title="Permalink to this definition">¶</a></dt>
<dd><p>Returns the numerical values of the points in the step response plot
of a SISO continuous-time system. By default, adaptive sampling
is used. If the user wants to instead get an uniformly
sampled response, then <code class="docutils literal notranslate"><span class="pre">adaptive</span></code> kwarg should be passed <code class="docutils literal notranslate"><span class="pre">False</span></code>
and <code class="docutils literal notranslate"><span class="pre">nb_of_points</span></code> must be passed as additional kwargs.
Refer to the parameters of class <a class="reference internal" href="../../plotting.html#sympy.plotting.plot.LineOver1DRangeSeries" title="sympy.plotting.plot.LineOver1DRangeSeries"><code class="xref py py-class docutils literal notranslate"><span class="pre">sympy.plotting.plot.LineOver1DRangeSeries</span></code></a>
for more details.</p>
<dl class="field-list">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>system</strong> : SISOLinearTimeInvariant</p>
<blockquote>
<div><p>The system for which the unit step response data is to be computed.</p>
</div></blockquote>
<p><strong>prec</strong> : int, optional</p>
<blockquote>
<div><p>The decimal point precision for the point coordinate values.
Defaults to 8.</p>
</div></blockquote>
<p><strong>lower_limit</strong> : Number, optional</p>
<blockquote>
<div><p>The lower limit of the plot range. Defaults to 0.</p>
</div></blockquote>
<p><strong>upper_limit</strong> : Number, optional</p>
<blockquote>
<div><p>The upper limit of the plot range. Defaults to 10.</p>
</div></blockquote>
<p><strong>kwargs :</strong></p>
<blockquote>
<div><p>Additional keyword arguments are passed to the underlying
<a class="reference internal" href="../../plotting.html#sympy.plotting.plot.LineOver1DRangeSeries" title="sympy.plotting.plot.LineOver1DRangeSeries"><code class="xref py py-class docutils literal notranslate"><span class="pre">sympy.plotting.plot.LineOver1DRangeSeries</span></code></a> class.</p>
</div></blockquote>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><strong>tuple</strong> : (x, y)</p>
<blockquote>
<div><p>x = Time-axis values of the points in the step response. NumPy array.
y = Amplitude-axis values of the points in the step response. NumPy array.</p>
</div></blockquote>
</dd>
<dt class="field-odd">Raises</dt>
<dd class="field-odd"><p><strong>NotImplementedError</strong></p>
<blockquote>
<div><p>When a SISO LTI system is not passed.</p>
<p>When time delay terms are present in the system.</p>
</div></blockquote>
<p><strong>ValueError</strong></p>
<blockquote>
<div><p>When more than one free symbol is present in the system.
The only variable in the transfer function should be
the variable of the Laplace transform.</p>
<p>When <code class="docutils literal notranslate"><span class="pre">lower_limit</span></code> parameter is less than 0.</p>
</div></blockquote>
</dd>
</dl>
<p class="rubric">Examples</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.abc</span> <span class="kn">import</span> <span class="n">s</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.physics.control.lti</span> <span class="kn">import</span> <span class="n">TransferFunction</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.physics.control.control_plots</span> <span class="kn">import</span> <span class="n">step_response_numerical_data</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">tf1</span> <span class="o">=</span> <span class="n">TransferFunction</span><span class="p">(</span><span class="n">s</span><span class="p">,</span> <span class="n">s</span><span class="o">**</span><span class="mi">2</span> <span class="o">+</span> <span class="mi">5</span><span class="o">*</span><span class="n">s</span> <span class="o">+</span> <span class="mi">8</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">step_response_numerical_data</span><span class="p">(</span><span class="n">tf1</span><span class="p">)</span>   
<span class="go">([0.0, 0.025413462339411542, 0.0484508722725343, ... , 9.670250533855183, 9.844291913708725, 10.0],</span>
<span class="go">[0.0, 0.023844582399907256, 0.042894276802320226, ..., 6.828770759094287e-12, 6.456457160755703e-12])</span>
</pre></div>
</div>
<div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#sympy.physics.control.control_plots.step_response_plot" title="sympy.physics.control.control_plots.step_response_plot"><code class="xref py py-obj docutils literal notranslate"><span class="pre">step_response_plot</span></code></a></p>
</div>
</dd></dl>

</section>
<section id="ramp-response-plot">
<h2>Ramp-Response Plot<a class="headerlink" href="#ramp-response-plot" title="Permalink to this headline">¶</a></h2>
<dl class="py method">
<dt class="sig sig-object py" id="sympy.physics.control.control_plots.ramp_response_plot">
<span class="sig-prename descclassname"><span class="pre">control_plots.</span></span><span class="sig-name descname"><span class="pre">ramp_response_plot</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">slope</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">color</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'b'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">prec</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">8</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lower_limit</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">upper_limit</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_axes</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">grid</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/sympy/sympy/blob/00d6469eafdd4aac346a0b598184c15f2560dbe5/sympy/physics/control/control_plots.py#L589-L665"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#sympy.physics.control.control_plots.ramp_response_plot" title="Permalink to this definition">¶</a></dt>
<dd><p>Returns the ramp response of a continuous-time system.</p>
<p>Ramp function is defined as the straight line
passing through origin (<span class="math notranslate nohighlight">\(f(x) = mx\)</span>). The slope of
the ramp function can be varied by the user and
the default value is 1.</p>
<dl class="field-list">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>system</strong> : SISOLinearTimeInvariant type</p>
<blockquote>
<div><p>The LTI SISO system for which the Ramp Response is to be computed.</p>
</div></blockquote>
<p><strong>slope</strong> : Number, optional</p>
<blockquote>
<div><p>The slope of the input ramp function. Defaults to 1.</p>
</div></blockquote>
<p><strong>color</strong> : str, tuple, optional</p>
<blockquote>
<div><p>The color of the line. Default is Blue.</p>
</div></blockquote>
<p><strong>show</strong> : boolean, optional</p>
<blockquote>
<div><p>If <code class="docutils literal notranslate"><span class="pre">True</span></code>, the plot will be displayed otherwise
the equivalent matplotlib <code class="docutils literal notranslate"><span class="pre">plot</span></code> object will be returned.
Defaults to True.</p>
</div></blockquote>
<p><strong>lower_limit</strong> : Number, optional</p>
<blockquote>
<div><p>The lower limit of the plot range. Defaults to 0.</p>
</div></blockquote>
<p><strong>upper_limit</strong> : Number, optional</p>
<blockquote>
<div><p>The upper limit of the plot range. Defaults to 10.</p>
</div></blockquote>
<p><strong>prec</strong> : int, optional</p>
<blockquote>
<div><p>The decimal point precision for the point coordinate values.
Defaults to 8.</p>
</div></blockquote>
<p><strong>show_axes</strong> : boolean, optional</p>
<blockquote>
<div><p>If <code class="docutils literal notranslate"><span class="pre">True</span></code>, the coordinate axes will be shown. Defaults to False.</p>
</div></blockquote>
<p><strong>grid</strong> : boolean, optional</p>
<blockquote>
<div><p>If <code class="docutils literal notranslate"><span class="pre">True</span></code>, the plot will have a grid. Defaults to True.</p>
</div></blockquote>
</dd>
</dl>
<p class="rubric">Examples</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.abc</span> <span class="kn">import</span> <span class="n">s</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.physics.control.lti</span> <span class="kn">import</span> <span class="n">TransferFunction</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.physics.control.control_plots</span> <span class="kn">import</span> <span class="n">ramp_response_plot</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">tf1</span> <span class="o">=</span> <span class="n">TransferFunction</span><span class="p">(</span><span class="n">s</span><span class="p">,</span> <span class="p">(</span><span class="n">s</span><span class="o">+</span><span class="mi">4</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">s</span><span class="o">+</span><span class="mi">8</span><span class="p">),</span> <span class="n">s</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">ramp_response_plot</span><span class="p">(</span><span class="n">tf1</span><span class="p">,</span> <span class="n">upper_limit</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>   
</pre></div>
</div>
<p>(<a class="reference external" href="control_plots-5.png">png</a>, <a class="reference external" href="control_plots-5.hires.png">hires.png</a>, <a class="reference external" href="control_plots-5.pdf">pdf</a>)</p>
<figure class="align-default">
<img alt="../../../_images/control_plots-5.png" class="plot-directive" src="../../../_images/control_plots-5.png" />
</figure>
<div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#sympy.physics.control.control_plots.step_response_plot" title="sympy.physics.control.control_plots.step_response_plot"><code class="xref py py-obj docutils literal notranslate"><span class="pre">step_response_plot</span></code></a>, <a class="reference internal" href="#sympy.physics.control.control_plots.ramp_response_plot" title="sympy.physics.control.control_plots.ramp_response_plot"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ramp_response_plot</span></code></a></p>
</div>
<p class="rubric">References</p>
<dl class="citation">
<dt class="label" id="r606"><span class="brackets"><a class="fn-backref" href="#id4">R606</a></span></dt>
<dd><p><a class="reference external" href="https://en.wikipedia.org/wiki/Ramp_function">https://en.wikipedia.org/wiki/Ramp_function</a></p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="sympy.physics.control.control_plots.ramp_response_numerical_data">
<span class="sig-prename descclassname"><span class="pre">control_plots.</span></span><span class="sig-name descname"><span class="pre">ramp_response_numerical_data</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">slope</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">prec</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">8</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lower_limit</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">upper_limit</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/sympy/sympy/blob/00d6469eafdd4aac346a0b598184c15f2560dbe5/sympy/physics/control/control_plots.py#L504-L586"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#sympy.physics.control.control_plots.ramp_response_numerical_data" title="Permalink to this definition">¶</a></dt>
<dd><p>Returns the numerical values of the points in the ramp response plot
of a SISO continuous-time system. By default, adaptive sampling
is used. If the user wants to instead get an uniformly
sampled response, then <code class="docutils literal notranslate"><span class="pre">adaptive</span></code> kwarg should be passed <code class="docutils literal notranslate"><span class="pre">False</span></code>
and <code class="docutils literal notranslate"><span class="pre">nb_of_points</span></code> must be passed as additional kwargs.
Refer to the parameters of class <a class="reference internal" href="../../plotting.html#sympy.plotting.plot.LineOver1DRangeSeries" title="sympy.plotting.plot.LineOver1DRangeSeries"><code class="xref py py-class docutils literal notranslate"><span class="pre">sympy.plotting.plot.LineOver1DRangeSeries</span></code></a>
for more details.</p>
<dl class="field-list">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>system</strong> : SISOLinearTimeInvariant</p>
<blockquote>
<div><p>The system for which the ramp response data is to be computed.</p>
</div></blockquote>
<p><strong>slope</strong> : Number, optional</p>
<blockquote>
<div><p>The slope of the input ramp function. Defaults to 1.</p>
</div></blockquote>
<p><strong>prec</strong> : int, optional</p>
<blockquote>
<div><p>The decimal point precision for the point coordinate values.
Defaults to 8.</p>
</div></blockquote>
<p><strong>lower_limit</strong> : Number, optional</p>
<blockquote>
<div><p>The lower limit of the plot range. Defaults to 0.</p>
</div></blockquote>
<p><strong>upper_limit</strong> : Number, optional</p>
<blockquote>
<div><p>The upper limit of the plot range. Defaults to 10.</p>
</div></blockquote>
<p><strong>kwargs :</strong></p>
<blockquote>
<div><p>Additional keyword arguments are passed to the underlying
<a class="reference internal" href="../../plotting.html#sympy.plotting.plot.LineOver1DRangeSeries" title="sympy.plotting.plot.LineOver1DRangeSeries"><code class="xref py py-class docutils literal notranslate"><span class="pre">sympy.plotting.plot.LineOver1DRangeSeries</span></code></a> class.</p>
</div></blockquote>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><strong>tuple</strong> : (x, y)</p>
<blockquote>
<div><p>x = Time-axis values of the points in the ramp response plot. NumPy array.
y = Amplitude-axis values of the points in the ramp response plot. NumPy array.</p>
</div></blockquote>
</dd>
<dt class="field-odd">Raises</dt>
<dd class="field-odd"><p><strong>NotImplementedError</strong></p>
<blockquote>
<div><p>When a SISO LTI system is not passed.</p>
<p>When time delay terms are present in the system.</p>
</div></blockquote>
<p><strong>ValueError</strong></p>
<blockquote>
<div><p>When more than one free symbol is present in the system.
The only variable in the transfer function should be
the variable of the Laplace transform.</p>
<p>When <code class="docutils literal notranslate"><span class="pre">lower_limit</span></code> parameter is less than 0.</p>
<p>When <code class="docutils literal notranslate"><span class="pre">slope</span></code> is negative.</p>
</div></blockquote>
</dd>
</dl>
<p class="rubric">Examples</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.abc</span> <span class="kn">import</span> <span class="n">s</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.physics.control.lti</span> <span class="kn">import</span> <span class="n">TransferFunction</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.physics.control.control_plots</span> <span class="kn">import</span> <span class="n">ramp_response_numerical_data</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">tf1</span> <span class="o">=</span> <span class="n">TransferFunction</span><span class="p">(</span><span class="n">s</span><span class="p">,</span> <span class="n">s</span><span class="o">**</span><span class="mi">2</span> <span class="o">+</span> <span class="mi">5</span><span class="o">*</span><span class="n">s</span> <span class="o">+</span> <span class="mi">8</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">ramp_response_numerical_data</span><span class="p">(</span><span class="n">tf1</span><span class="p">)</span>   
<span class="go">(([0.0, 0.12166980856813935,..., 9.861246379582118, 10.0],</span>
<span class="go">[1.4504508011325967e-09, 0.006046440489058766,..., 0.12499999999568202, 0.12499999999661349]))</span>
</pre></div>
</div>
<div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#sympy.physics.control.control_plots.ramp_response_plot" title="sympy.physics.control.control_plots.ramp_response_plot"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ramp_response_plot</span></code></a></p>
</div>
</dd></dl>

</section>
</section>


            <div class="clearer"></div>
          </div>
        </div>
      </div>
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper">
            <p class="logo"><a href="../../../index.html">
              <img class="logo" src="../../../_static/sympylogo.png" alt="Logo"/>
            </a></p>
  <h3><a href="../../../index.html">Table of Contents</a></h3>
  <ul>
<li><a class="reference internal" href="#">Control System Plots</a><ul>
<li><a class="reference internal" href="#pole-zero-plot">Pole-Zero Plot</a></li>
<li><a class="reference internal" href="#bode-plot">Bode Plot</a></li>
<li><a class="reference internal" href="#impulse-response-plot">Impulse-Response Plot</a></li>
<li><a class="reference internal" href="#step-response-plot">Step-Response Plot</a></li>
<li><a class="reference internal" href="#ramp-response-plot">Ramp-Response Plot</a></li>
</ul>
</li>
</ul>

  <h4>Previous topic</h4>
  <p class="topless"><a href="lti.html"
                        title="previous chapter">Control API</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="../continuum_mechanics/index.html"
                        title="next chapter">Continuum Mechanics</a></p>
  <div role="note" aria-label="source link">
    <h3>This Page</h3>
    <ul class="this-page-menu">
      <li><a href="../../../_sources/modules/physics/control/control_plots.rst.txt"
            rel="nofollow">Show Source</a></li>
    </ul>
   </div>
<div id="searchbox" style="display: none" role="search">
  <h3 id="searchlabel">Quick search</h3>
    <div class="searchformwrapper">
    <form class="search" action="https://docs.sympy.org/latest/search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>
    </div>
</div>
<script>$('#searchbox').show(0);</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../../../genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="../../../py-modindex.html" title="Python Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="../continuum_mechanics/index.html" title="Continuum Mechanics"
             >next</a> |</li>
        <li class="right" >
          <a href="lti.html" title="Control API"
             >previous</a> |</li>
        <li class="nav-item nav-item-0"><a href="../../../index.html">SymPy 1.9 documentation</a> &#187;</li>
          <li class="nav-item nav-item-1"><a href="../../index.html" >SymPy Modules Reference</a> &#187;</li>
          <li class="nav-item nav-item-2"><a href="../index.html" >Physics</a> &#187;</li>
          <li class="nav-item nav-item-3"><a href="index.html" >Control Module</a> &#187;</li>
        <li class="nav-item nav-item-this"><a href="#">Control System Plots</a></li> 
      </ul>
    </div>
    <div class="footer" role="contentinfo">
        &#169; Copyright 2021 SymPy Development Team.
      Last updated on Sep 30, 2021.
      Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 4.1.2.
    </div>
  </body>

<!-- Mirrored from docs.sympy.org/latest/modules/physics/control/control_plots.html by HTTrack Website Copier/3.x [XR&CO'2014], Sat, 15 Jan 2022 03:28:48 GMT -->
</html>